In its simplest form, a telephone network includes a number of user devices connected to a central switching apparatus. When a first user wants to communicate with a second user, he signals the switching apparatus to connect him to the second user, thereby opening a communication channel between the two. Once this channel is open, each user is able to transmit and receive information to and from the other over the network. The communication that takes place between users can include such things as a conversation between two persons, data transfer between two computers, or the supplying of services to a user by an automated service delivery system. The subject invention is concerned primarily with this third type of telephonic communication.
Any number of different services can be delivered over a telephone network. These services can be fairly simple, such as playing a weather recording for a caller, or very complex, such as applications involving speech recognition. The more complex services can require vast amounts of computational time in a resident microprocessor to perform adequately and, therefore, may not be able to perform in substantially real time when computational resources are shared by auxiliary functions.
One auxiliary function which consumes computational time in a telephone subsystem, and therefore limits the systems ability to operate in real time, is echo cancellation. Echo cancellation is the process of suppressing the portion of a received signal which is due to reflections of previously transmitted signals and allowing only the portion containing the desired information to proceed through for processing. Echo cancellation can be very important in an automated service delivery system as echoes can seriously degrade the performance of such systems. For example, in a system which performs speech recognition, the system will prompt a user to supply certain verbal information which the system then processes upon reception. If the user is familiar with the prompt and does not wish to listen to it, the system will allow him to begin his response before the prompt has ended and will terminate the transmission of the prompt upon the detection of the initiation of a user response. There will be a delay between the time the user begins his response and the time the system terminates the transmission of the prompt, and during this period there will be both a response signal and a prompt echo signal being sent to the system through the channel. The system must be capable of cancelling this prompt echo signal if accurate speech recognition is to be performed. Similarly, the system must be capable of cancelling the prompt echo signal even if the user does not initiate his verbal response before the prompt ends to prevent the system from misinterpreting the prompt echo signal as a verbal response.
To overcome the problems created by echo signals, echo cancellation devices are employed. One type of echo cancellation device makes use of a transversal filter, which is essentially a tapped-delay line having weighted coefficients associated with each tap. The coefficients of the filter can be set in such a way that when a transmit signal is simultaneously transmitted on the channel and applied to the input of the filter, the output of the filter will be an estimate of the echo signal received from the channel. This estimate can then be subtracted from the actual echo signal received from the channel, thereby cancelling the echo from the received signal. A transversal filter which has the ability to automatically adapt to changing channel characteristics is commonly referred to as an adaptive filter.
Determination of the proper filter coefficients is an iterative process which is usually done during a training stage before any actual two way communication takes place. A training signal is transmitted over the channel and the resultant echo signal is processed by the adaptive filter using an algorithm. The algorithm determines how the coefficients of the filter should be changed to sufficiently reduce an error signal created by subtracting the echo signal estimate from the actual received echo. Once the error signal has been sufficiently reduced, convergence of the filter is said to have occurred and the tap weights are properly set for echo cancellation during two way communications.
The adaptive filter, in general, must be as long as the longest expected channel delay for which the filter will be required to cancel echoes. The longer the filter, the more filter taps are required for effective cancellation. The more filter taps that are used, the greater the number of mathematical calculations that must be performed during both the training stage and the echo cancellation stage. For example, the filter will require N multiplications and N additions to compute each discrete sample of the echo estimate signal. This large number of required calculations greatly increases the computational time in a resident microprocessor that must be dedicated to echo cancellation and therefore reduces the time available to perform speech recognition functions. Because the computational time available to speech recognition is limited, the system will not be able to operate in substantially real time and undesirable delays will result. A need therefore exists for a method and apparatus for reducing the computational time required to perform the echo cancellation function in a system which performs speech recognition services.